/**
 * 
 */
package com.iapcursos.portal.procefet.modelo.beans.entitys;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.OrderBy;
import javax.persistence.Table;

/**
 * @author Gleison
 *
 */
@Entity
@Table(name = "UNIDADES")
public class Unidade implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 5424444286970673626L;
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int id;
	private String nome;
	@OneToMany(mappedBy="unidade" ,cascade = CascadeType.ALL, fetch=FetchType.EAGER)
	@OrderBy("nome")
	private List<Turma> turmas;
	@OneToMany(mappedBy = "unidade" , cascade = CascadeType.ALL)
	private List<Ambiente> ambientes;
	@OneToOne
	private Endereco endereco;
	
	/**
	 * @return the nome
	 */
	public String getNome() {
		return nome;
	}

	/**
	 * @param nome the nome to set
	 */
	public void setNome(String nome) {
		this.nome = nome;
	}

	/**
	 * @return the turmas
	 */
	public List<Turma> getTurmas() {
		return turmas;
	}

	/**
	 * @param turmas the turmas to set
	 */
	public void setTurmas(List<Turma> turmas) {
		this.turmas = turmas;
	}

	/**
	 * @return the ambientes
	 */
	public List<Ambiente> getAmbientes() {
		return ambientes;
	}

	/**
	 * @param ambientes the ambientes to set
	 */
	public void setAmbientes(List<Ambiente> ambientes) {
		this.ambientes = ambientes;
	}

	/**
	 * @return the endereco
	 */
	public Endereco getEndereco() {
		return endereco;
	}

	/**
	 * @param endereco the endereco to set
	 */
	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	/**
	 * @return the id
	 */
	public int getId() {
		return id;
	}
	
	public void addTurma(Turma turma){
		this.turmas.add(turma);
	}
	/**
	 * 
	 */
	public Unidade() {
		this.turmas = new ArrayList<Turma>();
		this.ambientes = new ArrayList<Ambiente>();
	}

}
